To generate a program, a software developer uses a tool-chain comprising a computer program or set of programs, which typically include at least a compiler for compiling object modules from source code and a linker for linking together a plurality of object modules to generate a resulting computer program, usually an executable file. However, a programmer must take careful steps when writing the source code to avoid errors occurring in the resulting program.